FCM(Soft clustering)

직접군집(Hard clustering)
데이터셋의 샘플이 정확히 하나의 클러스터에 할당되는 알고리즘 종류를 말한다.
k-menas, k-menas++가 이에 해당한다.
간접군집(Soft clustering)=퍼지 군집(fuzzy clustrering)
샘플을 하나 이상의 클러스터에 할당한다.
Fuzzy C-means 알고리즘이 이에 해당한다.
Fuzzy C-menas, FCM
FCM 처리 단계는 k-means와 매우 유사하다.
포인트가 직접적으로 클러스터에 할당되는 것을 각 클러스터에 속할 확률로 바뀐다.

FCM의 클래스 소속 벡터는 각 클러스터에 소속될 확률 벡터
process of FCM
1. 센트로이드 개수 k를 지정하고 랜덤하게 각 포인트에 대해 클러스터 확률을 할당한다.
2. 클러스터 센트로이드를 계산한다.
3. 각 샘플에 대해 클러스터 소속 확률을 업데이트 한다.
4. 클러스터 확률이 변하지 않거나 사용자가 지정한 허용 오차나 최대 반복 횟수가 도달할 때까지 단계 2와 3을 반복한다.
FCM의 목적함수는 k-means에서 최소화하는 클러스터 내 제곱 오차합과 매우 유사하다.
하지만 클러스터 소속 가중치 w가 k-means의 이진값(0, 1) 이 아닌 소속 확률이 된다.
또한 w에 추가적인 지수를 포함한다.(w^m)
m은 퍼지 계수(fuzziness coefficient)로 1보다 크거나 같으며,
m의 값이 클수록 클러스터 소속 활률 w가 작아져서 더 복잡한 클러스터가 만들어 진다.
만일 세개의 클러스터가 있을 경우 x_i가 miu_j 클러스터에 속할 확률



자세한 계산 식 참고할 것!
머신러닝교과서with파이썬,사이킷런,텐서플로_개정3판pg.450
FCM의 반복인 k-평균 반복보다 비용이 더 많이 들지만, 수렴에 도달하기까지의 반복 횟수가 적게 든다.
사이킷런에 아직 규현되어 있지 않음